home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 November: Tool Chest / Dev.CD Nov 98 TC.toast / Sample Code / Snippets / Development Tools & Languages / DTSCPlusLibrary / Sources / Random.a < prev    next >
Encoding:
Text File  |  1993-01-14  |  1.7 KB  |  66 lines  |  [TEXT/MPS ]

  1. * _________________________________________________________________________________________________________ //
  2. * Copyright © 1991-93 Apple Computer, Inc. All rights reserved.
  3. * Macintosh Developer Technical Support.C++ Macintosh Toolbox Framework.
  4. * Date: Tuesday, June 2, 1992 11:53:42
  5. * Revision comments are at the end of this file.
  6. * ---
  7. * TRandom is a stackbased utility class for random number generation.
  8. * Random.a contains the header file information for the class.
  9. * Routine(s):    long AsmRandom();
  10. * Function:    Returns a random long value
  11. * Reference:   Toolbox routine for faster access (no A-line trap)
  12. *_________________________________________________________________________________________________________ //
  13.  
  14.  
  15.             SEG            'Main'
  16.             CASE        OFF
  17.             MACHINE        MC68000
  18.         
  19.             ENTRY        AsmRandom
  20.  
  21. Start        DC.W    'Copyright Apple Computer Inc, 1992-93'
  22.  
  23. AsmRandom    FUNC        EXPORT
  24.  
  25.             MOVEA.L        (A5),A0
  26.             MOVE.W         #$41A7,D0 
  27.             MOVE.W         D0,D2
  28.             MULU.W         -$007C(A0),D0
  29.             MOVE.L         D0,D1
  30.             CLR.W          D1
  31.             SWAP           D1
  32.             MULU.W         -$007E(A0),D2
  33.             ADD.L          D1,D2
  34.             MOVE.L         D2,D1
  35.             ADD.L          D1,D1
  36.             CLR.W          D1
  37.             SWAP           D1
  38.             ANDI.L         #$0000FFFF,D0
  39.             SUBI.L         #$7FFFFFFF,D0
  40.             ANDI.L         #$00007FFF,D2
  41.             SWAP           D2
  42.             ADD.L          D1,D2
  43.             ADD.L          D2,D0
  44.             BPL.S        @1
  45.             ADDI.L         #$7FFFFFFF,D0
  46. @1            MOVE.L         D0,-$007E(A0)
  47.             CMPI.W         #$8000,D0
  48.             BNE.S          @2
  49.             CLR.W          D0
  50. @2            MOVE.W         D0,$0004(A7)
  51.             RTS
  52.             ORI.B      #$00,D0
  53.             ORI.B      #$00,D0  
  54.             ORI.B      #$00,D0
  55.             DC.W       $0000
  56.  
  57.             
  58.             ENDFUNC
  59.  
  60.             END
  61.         
  62. *    Change History (most recent last):
  63. *  No        Init.    Date        Comment
  64. *  1        khs        6/2/92        New file
  65. *  2        khs        1/7/93        Cleanup
  66.